'use strict';

const Controller = require('egg').Controller;
const {ObjectId} = require('mongodb')
class CollectController extends Controller {
  async index() {
    const { ctx } = this;
    var {id,collected} = ctx.request.body
    collected = (collected == "true") ? true : false
    const db = this.app.mongodb;
    /* 1、修改collect */
    await db.collection('article').updateOne({_id:ObjectId(id)},{$set:{collected}})
    /* 2、根据id查询对应的数据 */
    const res = await ctx.service.article.find(id)
    var item = res[0]
    // item._id = ObjectId(id)
    /* 3、collected === true 时 ，存入数据，且数据库中没有重复数据 */
    try{
      if (collected) {
        await db.collection("user").insertOne(item)
        ctx.body = {
          status:200,
          msg:"收藏成功"
        }
      }else{
        await db.collection("user").deleteOne({_id:ObjectId(id)})
        ctx.body = {
          status:200,
          msg:"取消收藏"
        }
      }
    }catch(err){
      this.app.logger.error(err)
      ctx.body = {
        status:400,
        msg:"数据库中已经存在，请勿重复添加"
      }
    }
   
  }
}

module.exports = CollectController;